package cn.yunhe.java.util;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.huiminpay.common.cache.util.EncryptUtil;

public class TokenUtil {
    private TokenUtil(){
    }

    /**
     *  对象转 token
     * @param javaObject 传入需要转换的java对象
     * @return base64编码的token
     */
    public static String createToken(Object javaObject) {
        JSONObject json_token = (JSONObject) JSONObject.toJSON(javaObject);
        String token = EncryptUtil.encodeBase64(JSON.toJSONString(json_token).getBytes());
        return token;
    }


    /**
     * token转换为对应的对象
     * @param token 传入token
     * @param clazz token转换的类
     * @param <T> 类的类型
     * @return 返回对象
     */
    public static <T> T parseToken(String token, Class<T> clazz) {
        byte[] decodeBase64 = EncryptUtil.decodeBase64(token);
        T obj = JSON.parseObject(decodeBase64,clazz);
        return obj;
    }


}
